import request from '../../utils/request';
import API from '../../config/API';

/**
 * 登录流程说明
 *  1. 收集表单数据
 *  2. 前端验证
 *      1）验证用户信息(账号、密码)是否合法
 *      2）前端验证不通过就提示用户，不需要发送请求给后端
 *      3）前端验证通过了，发送请求(携带账号、密码)给服务器
 *  3. 后端验证
 *      1）验证用户是否存在
 *      2）用户不存在直接返回，告诉前端用户不存在
 *      3）用户存在需要验证密码是否正确
 *      4）密码不正确返回给前端提示密码不正确
 *      5）密码正确返回给前端数据，提示用户登录成功(通常会携带用户的相关信息)
 */
Page({
    data: {
        phone: '',      // 手机号
        password: '',   // 用户密码
    },
    // 登录
    async login() {
        // 去除手机号和密码左右空格
        const { phone, password } = this.data;
        this.setData({ phone: phone.trim(), password: password.trim() });
        // 验证手机号
        if (!phone) {
            return wx.showToast({ title: '手机号不能为空', icon: 'none' });
        } else if (!(/^1[3456789]\d{9}$/.test(phone))) {
            return wx.showToast({ title: '手机号格式错误', icon: 'none' });
        }
        // 验证密码
        if (!password) {
            return wx.showToast({ title: '密码不能为空', icon: 'none' });
        }
        // 发送登录数据到服务器
        let resp = await request(API.phoneLogin, { phone, password, isLogin: true });
        // 判断是否登录成功
        if (resp.code === 200) {
            wx.setStorageSync('loginUser', JSON.stringify(resp.profile));
            wx.reLaunch({ url: '/pages/personal/personal' });
        } else {
            wx.showToast({ title: resp.message, icon: 'none' });
        }
    },
    /** 13989397447
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {

    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {

    }
})